package models

import "database/sql"

// ImportResult 单个文件导入结果
type ImportResult struct {
	FileName  string `json:"file_name"`
	Filesize  int64  `json:"file_size"`
	IsSuccess bool   `json:"is_success"`
	Message   string `json:"message,omitempty"`
}

// 导入人工工日条目
type ImportLaborItem struct {
	LID        string `db:"lid" json:"lid"`
	DesignCode string `db:"design_code" json:"design_code"`
	DesignType int    `db:"design_type" json:"design_type"`

	Code     string  `db:"code" json:"code" sheet:"（表三）甲" col:"B"`
	Quantity float64 `db:"quantity" json:"quantity" sheet:"（表三）甲" col:"E"`
	Remark   string  `db:"remark" json:"remark" sheet:"（表三）甲" col:"J"`
}

// 导入材料条目
type ImportMaterialItem struct {
	DesignCode string `db:"design_code" json:"design_code"`
	DesignType int    `db:"design_type" json:"design_type"`

	Code     string  `db:"code" json:"code" sheet:"表四" col:"B"`
	Quantity float64 `db:"quantity" json:"quantity" sheet:"表四" col:"E"`
	Price    float64 `db:"price" json:"price" sheet:"表四" col:"F"`
	Remark   string  `db:"remark" json:"remark" sheet:"表四" col:"L"`
}

type ImportOtherItem struct {
	DesignCode   string  `db:"design_code" json:"design_code"`
	DesignType   int     `db:"design_type" json:"design_type"`
	SerialNumber string  `db:"serial_number" json:"serial_number"`
	Name         string  `db:"name" json:"name"`
	Basis        string  `db:"basis" json:"basis"`
	TaxExcluded  float64 `db:"tax_excluded" json:"tax_excluded"`
	Tax          float64 `db:"tax" json:"tax"`
	TaxIncluded  float64 `db:"tax_included" json:"tax_included"`
	Remark       string  `db:"remark" json:"remark"`
}

type ImportBase struct {
	GeneralInfo  `db:"" json:"general_info"`
	OrgCode      string       `db:"org_code" json:"org_code"` // 建设单位编码
	ProjectState int          `db:"project_state" json:"project_state"`
	TimeBudget   sql.NullTime `db:"time_budget" json:"time_budget"`
	TimeSettle   sql.NullTime `db:"time_settle" json:"time_settle"`
	TimeAudit    sql.NullTime `db:"time_audit" json:"time_audit"`
	Importer     string       `db:"importer" json:"importer"`
	Imported     int          `db:"imported" json:"imported"`
}

type ImportProject struct {
	ImportBase    `db:"" json:"import_base"`
	LaborItems    []ImportLaborItem    `db:"labor_items" json:"labor_items"`
	MaterialItems []ImportMaterialItem `db:"material_items" json:"material_items"`
	OtherItems    []ImportOtherItem    `db:"other_items" json:"other_items"`
}

// 综合信息
type GeneralInfo struct {
	Name              string       `db:"name" json:"name" sheet:"综合信息" pos:"D2"`                              // 项目名称
	DesignCode        string       `db:"design_code" json:"design_code" sheet:"综合信息" pos:"D3"`                // 设计编号
	ConstructionUnit  string       `db:"construction_unit" json:"construction_unit" sheet:"综合信息" pos:"D4"`    // 建设单位
	Designer          string       `db:"designer" json:"designer" sheet:"综合信息" pos:"D5"`                      // 设计师
	Reviewer          string       `db:"reviewer" json:"reviewer" sheet:"综合信息" pos:"D6"`                      // 审核人
	PreparationDate   sql.NullTime `db:"preparation_date" json:"preparation_date" sheet:"综合信息" pos:"D7"`      // 编制日期
	ProjectType       string       `db:"project_type" json:"project_type" sheet:"综合信息" pos:"D8"`              // 项目类型
	Initiator         string       `db:"initiator" json:"initiator" sheet:"综合信息" pos:"D11"`                   // 申报单位
	BusinessType      string       `db:"business_type" json:"business_type" sheet:"综合信息" pos:"D12"`           // 业务类型（项目发起）
	ConstructionType  string       `db:"construction_type" json:"construction_type" sheet:"综合信息" pos:"D13"`   // 建设类型
	ProjectOverview   string       `db:"project_overview" json:"project_overview" sheet:"综合信息" pos:"D14"`     // 项目概况
	TechnicalAnalysis string       `db:"technical_analysis" json:"technical_analysis" sheet:"综合信息" pos:"D15"` // 技术分析
	ProfitStatement   string       `db:"profit_statement" json:"profit_statement" sheet:"综合信息" pos:"D16"`     // 收益说明
	PointOld          int          `db:"point_old" json:"point_old" sheet:"综合信息" pos:"D19"`                   // 现有点位数
	PointNew          int          `db:"point_new" json:"point_new" sheet:"综合信息" pos:"D20"`                   // 新建点位数
	PointCost         float64      `db:"point_cost" json:"point_cost" sheet:"综合信息" pos:"D21"`                 // 点位成本
	RecycleCycle      int          `db:"recycle_cycle" json:"recycle_cycle" sheet:"综合信息" pos:"D22"`           // 回收周期（月）
	TotalCost         float64      `db:"total_cost" json:"total_cost" sheet:"工程立项" pos:"B19"`                 // 总造价
}
